Skip to content

[WIP] Switching from Synlig to Yosys-Slang #3181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

loglav03
Copy link
Contributor

@loglav03 loglav03 commented Jul 3, 2025

Description

Replaced Synlig with the Yosys-Slang plugin for Yosys for reading SystemVerilog.

Related Issue

  1. System Verilog support is broken due to compilation error in F4PGA plugin #2821
  2. Embed slang-yosys plugin as a SystemVerilog frontend for yosys #3108

Motivation and Context

Synlig has a lot of overhead when building with the vtr build system leading to issues when building in CI and sometimes locally. Synlig is also poorly maintained. Yosys-Slang has significantly less overhead, can easily be implemented as a plugin for yosys, and is regularly maintained.

How Has This Been Tested?

Has been tested with the vtr_reg_system_verilog tests [PASSED]

Types of changes

  • [ x] Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • [ x] My change requires a change to the documentation
  • [ x] I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

loglav03 and others added 5 commits June 26, 2025 17:38
…stall with vtr when enabled with the cmake parameter -DSLANG_SYSTEMVERILOG=ON
…ultiple .sv files instead of single flattened .sv files (with the exception of the f4pga_pulse_width_led test since it uses .v files instead of .sv)
@github-actions github-actions bot added lang-cpp C/C++ code build Build system lang-python Python code lang-make CMake/Make code external_libs labels Jul 3, 2025
@github-actions github-actions bot added the infra Project Infrastructure label Jul 3, 2025
@github-actions github-actions bot added the docs Documentation label Jul 7, 2025
@loglav03
Copy link
Contributor Author

loglav03 commented Jul 8, 2025

@petergrossmann21 - I ran tests with yosys-slang enabled on the benchmarks you listed in this PR #2885. Some of these benchmarks made it through the entire flow and passed while others failed at read_slang in Yosys or failed at the VPR stage. There are also many other benchmarks not in the list that also failed with yosys-slang. Whenever you're available Peter I'll need help with HDL file cleanup for this.

Passing VPR Benchmarks:

blob_merge
diffeq1
diffeq2
single_ff
single_wire

Failing VPR Benchmarks:

and_latch
arm_core
boundtop
ch_intrinisics
multiclock_output_and_latch
multiclock_reader_writer
multiclock_separate_and_latch
stereovision3

I have not tried koios yet since the benchmarks take a long time to run, but I'm sure I will see similar results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Build system docs Documentation external_libs infra Project Infrastructure lang-cpp C/C++ code lang-make CMake/Make code lang-python Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant